#!/bin/bash

# 测试环境清理脚本
# 用于手动清理测试过程中产生的临时文件和进程

echo "🧹 测试环境深度清理"
echo "===================="

echo "1. 停止所有测试相关进程..."
# 强制停止所有相关进程
pkill -f "node_server" 2>/dev/null || true
pkill -f "node_agent" 2>/dev/null || true
sleep 2
pkill -9 -f "node_server" 2>/dev/null || true
pkill -9 -f "node_agent" 2>/dev/null || true

echo "2. 清理项目根目录下的临时文件..."
# 清理项目根目录下的临时文件
cd "$(dirname "$0")/.." || exit 1
rm -f *.log *.txt *.pid nohup.out
rm -f quick_*.log server*.log agent*.log
rm -f stress_*.log stress_result_*.txt performance_*.log
rm -f tls_test_*.log comprehensive_*.log
rm -f test_file.txt

echo "3. 清理 /tmp 目录下的测试文件..."
# 清理/tmp下可能的测试文件
rm -f /tmp/test_*.txt /tmp/config_*.txt 2>/dev/null || true

echo "4. 检查进程状态..."
# 检查是否还有残留进程
if pgrep -f "node_server\|node_agent" > /dev/null; then
    echo "⚠️ 发现残留进程："
    pgrep -f "node_server\|node_agent" -l
    echo "正在强制终止..."
    pkill -9 -f "node_server\|node_agent" 2>/dev/null || true
else
    echo "✅ 没有发现残留进程"
fi

echo "5. 验证清理结果..."
# 验证清理结果  
TEMP_FILES=$(ls *.log *.txt *.pid 2>/dev/null || true)
if [ -n "$TEMP_FILES" ]; then
    echo "⚠️ 发现未清理的文件："
    echo "$TEMP_FILES"
    echo "请手动检查这些文件"
else
    echo "✅ 所有临时文件已清理"
fi

echo ""
echo "🎯 清理完成！"
echo "============"
echo "如果需要重新运行测试，可以直接执行任何测试脚本。"
echo ""
echo "可用测试脚本："
echo "  ./tests/quick_test.sh           - 快速功能验证"
echo "  ./tests/functional_test.sh      - 完整功能测试"
echo "  ./tests/comprehensive_test.sh   - 综合集成测试"
echo "  ./tests/performance_test.sh     - 性能压力测试"
echo "  ./tests/tls_test.sh             - TLS加密测试"
